<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="lib.css" type='text/css' />
<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
<link rel='start' href='../index.html' title='Python documentation Index' />
<link rel="first" href="lib.html" title='Python library Reference' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="module-compileall.html" />
<link rel="prev" href="module-pyclbr.html" />
<link rel="parent" href="language.html" />
<link rel="next" href="module-compileall.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>30.8 py_compile -- Compile Python source files</title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="30.7.2 function Descriptor Objects"
  href="pyclbr-function-objects.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="30. python Language Services"
  href="language.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="30.9 compileall  "
  href="module-compileall.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pyclbr-function-objects.html">30.7.2 Function Descriptor Objects</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="language.html">30. Python Language Services</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-compileall.html">30.9 compileall  </a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->

<h1><a name="SECTION0032800000000000000000">
30.8 <tt class="module">py_compile</tt> --
         Compile Python source files</a>
</h1>

<p>
<a name="module-pycompile"></a>
<p>

<p>
<a id='l2h-5464' xml:id='l2h-5464'></a>The <tt class="module">py_compile</tt> module provides a function to generate a
byte-code file from a source file, and another function used when the
module source file is invoked as a script.

<p>
Though not often needed, this function can be useful when installing
modules for shared use, especially if some of the users may not have
permission to write the byte-code cache files in the directory
containing the source code.

<p>
<dl><dt><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-5465' xml:id='l2h-5465' class="exception">PyCompileError</tt></b></dt>
<dd>
Exception raised when an error occurs while attempting to compile the file.
</dd></dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-5466' xml:id='l2h-5466' class="function">compile</tt></b>(</nobr></td>
  <td><var>file</var><big>[</big><var>, cfile</var><big>[</big><var>, dfile</var><big>[</big><var>, doraise</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
  Compile a source file to byte-code and write out the byte-code cache 
  file.  The source code is loaded from the file name <var>file</var>.  The 
  byte-code is written to <var>cfile</var>, which defaults to <var>file</var>
  <code>+</code> <code>'c'</code> (<code>'o'</code> if optimization is enabled in the
  current interpreter).  If <var>dfile</var> is specified, it is used as
  the name of the source file in error messages instead of <var>file</var>. 
  If <var>doraise</var> is true, a <tt class="exception">PyCompileError</tt> is raised when
  an error is encountered while compiling <var>file</var>. If <var>doraise</var>
  is false (the default), an error string is written to <code>sys.stderr</code>,
  but no exception is raised.
</dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-5467' xml:id='l2h-5467' class="function">main</tt></b>(</nobr></td>
  <td><var></var><big>[</big><var>args</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
  Compile several source files.  The files named in <var>args</var> (or on
  the command line, if <var>args</var> is not specified) are compiled and
  the resulting bytecode is cached in the normal manner.  This
  function does not search a directory structure to locate source
  files; it only compiles files named explicitly.
</dl>

<p>
When this module is run as a script, the <tt class="function">main()</tt> is used to
compile all the files named on the command line.

<p>
<div class="seealso">
  <p class="heading">See Also:</p>

  <dl compact="compact" class="seemodule">
    <dt>Module <b><tt class="module"><a href="module-compileall.html">compileall</a></tt>:</b>
    <dd>Utilities to compile all Python source files
                         in a directory tree.
  </dl>
</div>

<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="30.7.2 function Descriptor Objects"
  href="pyclbr-function-objects.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="30. python Language Services"
  href="language.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="30.9 compileall  "
  href="module-compileall.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pyclbr-function-objects.html">30.7.2 Function Descriptor Objects</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="language.html">30. Python Language Services</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-compileall.html">30.9 compileall  </a>
</div>
</div>
<hr />
<span class="release-info">Release 2.5.1, documentation updated on 18th April, 2007.</span>
</div>
<!--End of Navigation Panel-->
<address>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</address>
</body>
</html>
